package com.zzs.team.Service;

import com.zzs.team.DAO.UserDao;
import com.zzs.team.Entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class UserServiceImpl implements UserService{

    @Autowired
    UserDao userDao;

    /**
     * 登陆时检查用户是否在数据库存过、昵称、头像跟新
     * @param user 从微信数据库获取的当前用户的昵称、头像地址信息
     * @return  返回更新后的结果
     */
    @Override
    @Transactional
    public User checkUserByOpenID(User user) {
        User u = userDao.findUserByOpenid(user.getOpenID());

        if (u==null){
            //1、表示用户首次登陆，数据库没有信息
            userDao.insertUser(user);
            u = user;
        }else {
            String nickName = user.getNickName();
            String avatarUrl = user.getAvatar();
            //用户之前存在数据库过，执行判断更新操作
            //2、用户的昵称更改了，则更新数据库的昵称信息
            if (!nickName.equals(u.getNickName())){

                userDao.updateUserByNickName(user.getNickName());
            }
            //3、用户的头像更改了，则更新数据库的头像地址
            if (!avatarUrl.equals(u.getAvatar())){
                userDao.updateUserByAvatarUrl(user.getAvatar());
            }
        }
        return u;
    }
}
